home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / BoxLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.3 KB  |  164 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTError;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Insets;
  8. import java.awt.LayoutManager2;
  9. import java.io.PrintStream;
  10. import java.io.Serializable;
  11.  
  12. public class BoxLayout implements LayoutManager2, Serializable {
  13.    public static final int X_AXIS = 0;
  14.    public static final int Y_AXIS = 1;
  15.    private int axis;
  16.    private Container target;
  17.    private transient SizeRequirements[] xChildren;
  18.    private transient SizeRequirements[] yChildren;
  19.    private transient SizeRequirements xTotal;
  20.    private transient SizeRequirements yTotal;
  21.    private transient PrintStream dbg;
  22.  
  23.    public BoxLayout(Container var1, int var2) {
  24.       if (var2 != 0 && var2 != 1) {
  25.          throw new AWTError("Invalid axis");
  26.       } else {
  27.          this.axis = var2;
  28.          this.target = var1;
  29.       }
  30.    }
  31.  
  32.    BoxLayout(Container var1, int var2, PrintStream var3) {
  33.       this(var1, var2);
  34.       this.dbg = var3;
  35.    }
  36.  
  37.    public void addLayoutComponent(Component var1, Object var2) {
  38.    }
  39.  
  40.    public void addLayoutComponent(String var1, Component var2) {
  41.    }
  42.  
  43.    void checkContainer(Container var1) {
  44.       if (this.target != var1) {
  45.          throw new AWTError("BoxLayout can't be shared");
  46.       }
  47.    }
  48.  
  49.    void checkRequests() {
  50.       if (this.xChildren == null || this.yChildren == null) {
  51.          int var1 = this.target.getComponentCount();
  52.          this.xChildren = new SizeRequirements[var1];
  53.          this.yChildren = new SizeRequirements[var1];
  54.  
  55.          for(int var2 = 0; var2 < var1; ++var2) {
  56.             Component var3 = this.target.getComponent(var2);
  57.             Dimension var4 = var3.getMinimumSize();
  58.             Dimension var5 = var3.getPreferredSize();
  59.             Dimension var6 = var3.getMaximumSize();
  60.             this.xChildren[var2] = new SizeRequirements(var4.width, var5.width, var6.width, var3.getAlignmentX());
  61.             this.yChildren[var2] = new SizeRequirements(var4.height, var5.height, var6.height, var3.getAlignmentY());
  62.          }
  63.  
  64.          if (this.axis == 0) {
  65.             this.xTotal = SizeRequirements.getTiledSizeRequirements(this.xChildren);
  66.             this.yTotal = SizeRequirements.getAlignedSizeRequirements(this.yChildren);
  67.          } else {
  68.             this.xTotal = SizeRequirements.getAlignedSizeRequirements(this.xChildren);
  69.             this.yTotal = SizeRequirements.getTiledSizeRequirements(this.yChildren);
  70.          }
  71.       }
  72.  
  73.    }
  74.  
  75.    public float getLayoutAlignmentX(Container var1) {
  76.       this.checkContainer(var1);
  77.       this.checkRequests();
  78.       return this.xTotal.alignment;
  79.    }
  80.  
  81.    public float getLayoutAlignmentY(Container var1) {
  82.       this.checkContainer(var1);
  83.       this.checkRequests();
  84.       return this.yTotal.alignment;
  85.    }
  86.  
  87.    public void invalidateLayout(Container var1) {
  88.       this.checkContainer(var1);
  89.       this.xChildren = null;
  90.       this.yChildren = null;
  91.       this.xTotal = null;
  92.       this.yTotal = null;
  93.    }
  94.  
  95.    public void layoutContainer(Container var1) {
  96.       this.checkContainer(var1);
  97.       this.checkRequests();
  98.       int var2 = var1.getComponentCount();
  99.       int[] var3 = new int[var2];
  100.       int[] var4 = new int[var2];
  101.       int[] var5 = new int[var2];
  102.       int[] var6 = new int[var2];
  103.       Dimension var7 = ((Component)var1).getSize();
  104.       Insets var8 = var1.getInsets();
  105.       var7.width -= var8.left + var8.right;
  106.       var7.height -= var8.top + var8.bottom;
  107.       if (this.axis == 0) {
  108.          SizeRequirements.calculateTiledPositions(var7.width, this.xTotal, this.xChildren, var3, var4);
  109.          SizeRequirements.calculateAlignedPositions(var7.height, this.yTotal, this.yChildren, var5, var6);
  110.       } else {
  111.          SizeRequirements.calculateAlignedPositions(var7.width, this.xTotal, this.xChildren, var3, var4);
  112.          SizeRequirements.calculateTiledPositions(var7.height, this.yTotal, this.yChildren, var5, var6);
  113.       }
  114.  
  115.       for(int var9 = 0; var9 < var2; ++var9) {
  116.          Component var10 = var1.getComponent(var9);
  117.          var10.setBounds((int)Math.min((long)var8.left + (long)var3[var9], 2147483647L), (int)Math.min((long)var8.top + (long)var5[var9], 2147483647L), var4[var9], var6[var9]);
  118.       }
  119.  
  120.       if (this.dbg != null) {
  121.          for(int var12 = 0; var12 < var2; ++var12) {
  122.             Component var11 = var1.getComponent(var12);
  123.             this.dbg.println(var11.toString());
  124.             this.dbg.println("X: " + this.xChildren[var12]);
  125.             this.dbg.println("Y: " + this.yChildren[var12]);
  126.          }
  127.       }
  128.  
  129.    }
  130.  
  131.    public Dimension maximumLayoutSize(Container var1) {
  132.       this.checkContainer(var1);
  133.       this.checkRequests();
  134.       Dimension var2 = new Dimension(this.xTotal.maximum, this.yTotal.maximum);
  135.       Insets var3 = var1.getInsets();
  136.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  137.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  138.       return var2;
  139.    }
  140.  
  141.    public Dimension minimumLayoutSize(Container var1) {
  142.       this.checkContainer(var1);
  143.       this.checkRequests();
  144.       Dimension var2 = new Dimension(this.xTotal.minimum, this.yTotal.minimum);
  145.       Insets var3 = var1.getInsets();
  146.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  147.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  148.       return var2;
  149.    }
  150.  
  151.    public Dimension preferredLayoutSize(Container var1) {
  152.       this.checkContainer(var1);
  153.       this.checkRequests();
  154.       Dimension var2 = new Dimension(this.xTotal.preferred, this.yTotal.preferred);
  155.       Insets var3 = var1.getInsets();
  156.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  157.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  158.       return var2;
  159.    }
  160.  
  161.    public void removeLayoutComponent(Component var1) {
  162.    }
  163. }
  164.